package com.love.marriage.datingInfo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.love.marriage.common.vo.BaseVo;
import com.love.marriage.config.Long2StringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * description:  约会表Vo
 * author:       alex
 * createDate:   2024-10-15 20:28:51
 * version:      1.0.0
 */
@Getter
@Setter
@Accessors(chain = true)
@Schema(name = "DatingInfoVo", description = "约会表Vo(需要添加操作人)")
public class DatingInfoVo extends BaseVo<DatingInfoVo>{

    @Schema(description = "约会类型", type = "String", implementation = String.class)
    private String datingType;

    @Schema(description = "约会主题", type = "String", implementation = String.class)
    private String datingTheme;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    @Schema(description = "约会开始时间(yyyy-MM-dd HH:mm:ss)", type = "LocalDateTime", implementation = LocalDateTime.class)
    private LocalDateTime startTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    @Schema(description = "约会结束时间(yyyy-MM-dd HH:mm:ss)", type = "LocalDateTime", implementation = LocalDateTime.class)
    private LocalDateTime endTime;

    @Schema(description = "约会内容", type = "String", implementation = String.class)
    private String content;

    @Schema(description = "约会图片ID（逗号分隔）", type = "String", implementation = String.class)
    private String imageIds;

    @Schema(description = "约会地点详情", type = "String", implementation = String.class)
    private String location;

    @Schema(description = "应邀支付金额", type = "BigDecimal", implementation = BigDecimal.class)
    private BigDecimal payMoney;

    @Schema(description = "关键词", type = "String", implementation = String.class)
    private String keyword;

    @Schema(description = "省id", type = "Integer", implementation = Integer.class)
    private Integer provinceId;

    @Schema(description = "省名称", type = "String", implementation = String.class)
    private String provinceName;

    @Schema(description = "城市id", type = "Integer", implementation = Integer.class)
    private Integer cityId;

    @Schema(description = "城市名称", type = "String", implementation = String.class)
    private String cityName;

    @Schema(description = "区id", type = "Integer", implementation = Integer.class)
    private Integer districtId;

    @Schema(description = "区名称", type = "String", implementation = String.class)
    private String districtName;

    @Schema(description = "约会开始时间从", type = "LocalDateTime", implementation = LocalDateTime.class)
    private LocalDateTime startTimeFrom;

    @Schema(description = "约会开始时间到", type = "LocalDateTime", implementation = LocalDateTime.class)
    private LocalDateTime startTimeTo;

    @Schema(description = "置顶标识", type = "Boolean", implementation = Boolean.class)
    private Boolean topFlag;

    @JsonSerialize(using = Long2StringSerializer.class)
    @Schema(description = "分享照片ID", type = "Long", implementation = Long.class)
    private Long sharePhotoId;

    @Schema(description = "置顶标识排序", type = "Boolean", implementation = Boolean.class)
    private Boolean noTopFlagSort;

    @JsonSerialize(using = Long2StringSerializer.class)
    @Schema(description = "用户id", implementation = Long.class)
    private Long userId;
}
